package sip_core

/*
查询命令定义如下:
	<elementname="Query">
		<complexType>
			<sequence>
				<! -- 查询请求命令序列如下-->
			</sequence>
		</complexType>
	</element>
*/

// DeviceStatusQuery 设备状态查询请求xml结构
type DeviceStatusQuery struct {
	//CmdType = DeviceStatus
	*SipMsgXML
}

// CatalogQuery 设备目录信息查询请求xml结构
type CatalogQuery struct {
	//CmdType = Catalog
	*SipMsgXML
	//增加设备的起始时间(可选)空表示不限
	StartTime string `xml:"StartTime"`
	//增加设备的终止时间(可选)空表示到当前时间
	EndTime string `xml:"EndTime"`
}

// RecordInfoQuery 设备历史文件信息查询请求xml结构
type RecordInfoQuery struct {
	//CmdType = RecordInfo
	*SipMsgXML
	StartTime string `xml:"StartTime"`
	EndTime   string `xml:"EndTime"`
	Secrecy   string `xml:"Secrecy"`
	Type      string `xml:"Type"`
}

// DeviceInfoQuery 设备信息查询请求xml结构
type DeviceInfoQuery struct {
	//CmdType = DeviceInfo
	*SipMsgXML
}

// AlarmQuery 报警查询请求xml结构
type AlarmQuery struct {
	//CmdType = Alarm
	*SipMsgXML
	//报警起始级别(可选),0为全部,1为一级警情,2为二级警情,3为三级警情,4为四级警情
	StartAlarmPriority int `xml:"StartAlarmPriority"`
	//报警终止级别(可选),0为全部,1为一级警情,2为二级警情,3为三级警情,4为四级警情
	EndAlarmPriority int `xml:"EndAlarmPriority"`
	//报警方式条件(可选),取值0为全部,1为电话报警,2为设备报警,3为短信报警,4为GPS报警,5为视频报警,6为设备故障报警,7其他报警;可以为直接组合如12为电话报警或设备报警
	AlarmMethod string `xml:"AlarmMethod"`
	//报警类型
	AlarmType string `xml:"AlarmType"`
	//报警发生起始时间(可选)
	StartAlarmTime string `xml:"StartAlarmTime"`
	//报警发生终止时间(可选)
	EndAlarmTime string `xml:"EndAlarmTime"`
	//文件服务器地址字段(可选)
	PicServer string `xml:"PicServer"`
}

// ConfigDownloadQuery 设备配置查询请求xml结构
type ConfigDownloadQuery struct {
	//CmdType = ConfigDownload
	*SipMsgXML
	//查询配置参数类型(必选),可查询的配置类型包括
	//基本参数配置:BasicParam,视频参数范围:VideoParamOpt,SVAC 编码配置:SVACEncodeConfig,SVAC 解码配置:SVACDeodeConfig。
	//可同时查询多个配置类型,各类型以“/”分隔,可返回与查询SN 值相同的多个响应,每个响应对应一个配置类型
	ConfigType string `xml:"ConfigType"`
}

// PresetQuery 设备预置位查询消息xml结构
type PresetQuery struct {
	// CmdType = PresetQuery
	*SipMsgXML
}

// 移动设备位置数据查询请求xml结构
type MobilePositionQuery struct {
	// CmdType = MobilePosition
	*SipMsgXML
	//移动设备位置信息上报时间间隔,单位:秒,默认值5
	Interval int `xml:"Interval"`
}
